package com.tripwego.client.ui.pageVoyage;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.maps.client.geom.LatLng;
import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.IsWidget;
import com.tripwego.client.model.ActiviteModel;
import com.tripwego.client.model.EtapeModel;
import com.tripwego.client.model.TrajetModel;
import com.tripwego.client.model.TripModel;

public interface IVoyageView extends IsWidget {

	void setPresenter(Presenter presenter);

	void setEventBus(EventBus eventBus);

	public interface Presenter {

		void goTo(Place place);

		void addMarkerPlace(LatLng position, String icon);

		void onReset();

		void onCreateActivite(ActiviteModel activiteModel);

		void onDeleteActivite(ActiviteModel activiteModel);

		void resizeMap();

		void onHideCarnetDeRoute();

		void onCreateEtape(EtapeModel etapeModel);

		void onDeleteEtape(EtapeModel etapeModel);

		void initAutocomplete(String id, String type);

		void majValidationAutocomplete(String key, Boolean value);
		
		boolean isAutocompleteValide(String key);

		void onCreateTrip(TripModel tripModel);

		EtapeModel getLastEtape();

		void searchPlacesType(String type);

		void closePlaceService();

		void togglePause();

		void animerTrip();

		void ajusterMap();

		void initTrip(Long tripId);

		void dessinerTrip();

		void stopAnimation();

		void centrerMapSurEtape(double latitude, double longitude);

		void showFormEditEtape(EtapeModel etapeModel);

		void onUpdateEtape(EtapeModel etapeModel);

		String getTripName();

		void onUpdateTrajet(ActiviteModel activiteModel);

		void onDeleteTrajet(TrajetModel trajetModel);
	}

	void init();

}
